package com.gin.no_gay_alliance.listener;

import android.view.MenuItem;
import android.widget.PopupMenu;

/**
 * 弹出菜单的项目点击响应
 *
 * @author : ginstone
 * @version : v1.0.0
 * @since : 2023/8/19 12:02
 **/
public abstract class PopupOnMenuItemClickListener<T> implements PopupMenu.OnMenuItemClickListener {
    T item;

    /**
     * 设置当前项目
     *
     * @param item 数据项目
     */
    public final void setItem(T item) {
        this.item = item;
    }

    @Override
    public final boolean onMenuItemClick(MenuItem menuItem) {
        return onMenuItemClick(item, menuItem, menuItem.getItemId());
    }

    /**
     * 菜单项目的点击事件处理
     *
     * @param item     数据项目
     * @param menuItem 菜单项目
     * @param itemId   菜单项目id
     * @return boolean
     */
    protected abstract boolean onMenuItemClick(T item, MenuItem menuItem, int itemId);
}
